package com.File类;

import java.io.File;

/*File类判断和获取功能*/
public class FileDemo3 {
    public static void main(String[] args) {
        File f1 = new File("BC\\java.txt");
        //是否为目录
        //是否为文件
        //是否存在
        System.out.println(f1.isDirectory()); //false
        System.out.println(f1.isFile()); //false
        System.out.println(f1.exists()); //false
        /*获取绝对路径
        * 获取封装路径
        * 获取文件或目录名称*/
        System.out.println(f1.getAbsolutePath()); //F:\IdeaProjects\JavaSE_Code\BC\java.txt
        System.out.println(f1.getPath()); //BC\java.txt
        System.out.println(f1.getName()); //java.txt

        System.out.println("---------------");

        File f2 = new File("F:\\BC");
        //String[] list():返回目录中的文件和目录名称的字符串数组
        String[] strArray = f2.list();
        for(String str:strArray){
            System.out.println(str);
        }
        /*c
        CLion 2021.2
        DataGrip 2021.2.1
        Github Code
        IntelliJ IDEA 2020.3.4
        IntelliJ.txt
        java
        java.txt
        JavaSE
        javase.txt
        JavaWEB
        Notepad++
        python*/

        System.out.println("---------------");

        //返回目录中文件和目录的File对象
        File[] fileArray = f2.listFiles();
        for(File file:fileArray){
//            System.out.println(file);
            /*F:\BC\c
                F:\BC\CLion 2021.2
                F:\BC\DataGrip 2021.2.1
                F:\BC\Github Code
                F:\BC\IntelliJ IDEA 2020.3.4
                F:\BC\IntelliJ.txt
                F:\BC\java
                F:\BC\java.txt
                F:\BC\JavaSE
                F:\BC\javase.txt
                F:\BC\JavaWEB
                F:\BC\Notepad++
                F:\BC\python*/
//            System.out.println(file.getName());
//            该方法结果与list()方法的结果相同

            /*  第一中list()方法只能得到字符串数组，不能进一步筛选，而第二种方法获取
            * 到的是file类对象，可以对对象进行操作*/
            if(file.isFile()){
                System.out.println(file.getName());
            }
            /*通过筛选得到了文件，随后调用方法输出文件名
                IntelliJ.txt
                java.txt
                javase.txt*/
        }
    }


}
